Open
Conversation
* [10.0] re-introduce state field on product * [ADD] add setup for product state
I've added both field content and help to ease understand the possibilities (draft and sellable have different meaning than In Development and Normal
Currently translated at 100.0% (6 of 6 strings) Translation: product-attribute-12.0/product-attribute-12.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_state/pt/
Currently translated at 100.0% (29 of 29 strings) Translation: product-attribute-13.0/product-attribute-13.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-13-0/product-attribute-13-0-product_state/de/
Currently translated at 100.0% (29 of 29 strings) Translation: product-attribute-13.0/product-attribute-13.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-13-0/product-attribute-13-0-product_state/fr/ Translated using Weblate (French) Currently translated at 55.2% (16 of 29 strings) Translation: product-attribute-13.0/product-attribute-13.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-13-0/product-attribute-13-0-product_state/fr/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: product-attribute-13.0/product-attribute-13.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-13-0/product-attribute-13-0-product_state/ [MIG] product_state: Migration to 14.0
Application: False
Currently translated at 93.1% (27 of 29 strings) Translation: product-attribute-14.0/product-attribute-14.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-14-0/product-attribute-14-0-product_state/nl/
As fields are on the form view, a write is called with them. This is an unwanted behaviour.
* Fix bug when inverting non-exist new state * Show default and active fields in product state form * Refactor inverse state to use with variant state
Co-authored-by: Iryna Vyshnevska <iryna.vyshnevska@camptocamp.com>
Translated using Weblate (Catalan) Currently translated at 93.7% (30 of 32 strings) Translation: product-attribute-15.0/product-attribute-15.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-15-0/product-attribute-15-0-product_state/ca/
[UPD] Update product_state.pot [UPD] README.rst
Translated using Weblate (Italian) Currently translated at 100.0% (32 of 32 strings) Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/it/
Translated using Weblate (Italian) Currently translated at 100.0% (32 of 32 strings) Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/it/ Translated using Weblate (Italian) Currently translated at 100.0% (32 of 32 strings) Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/it/ Translated using Weblate (Spanish) Currently translated at 100.0% (33 of 33 strings) Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/es/ [UPD] README.rst Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/ Translated using Weblate (Spanish) Currently translated at 100.0% (32 of 32 strings) Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/es/ Translated using Weblate (Italian) Currently translated at 100.0% (32 of 32 strings) Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/it/ Translated using Weblate (Italian) Currently translated at 100.0% (32 of 32 strings) Translation: product-attribute-16.0/product-attribute-16.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-16-0/product-attribute-16-0-product_state/it/
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: product-attribute-18.0/product-attribute-18.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_state/
Currently translated at 100.0% (31 of 31 strings) Translation: product-attribute-18.0/product-attribute-18.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_state/it/
Currently translated at 80.6% (25 of 31 strings) Translation: product-attribute-18.0/product-attribute-18.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_state/fr/
Currently translated at 83.8% (26 of 31 strings) Translation: product-attribute-18.0/product-attribute-18.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_state/fr/
Currently translated at 100.0% (31 of 31 strings) Translation: product-attribute-18.0/product-attribute-18.0-product_state Translate-URL: https://translation.odoo-community.org/projects/product-attribute-18-0/product-attribute-18-0-product_state/nl/
Before this change a product would never get back into its default state. Example: a new proudct with a new until date in the past will keep a state set as `new`. Instead it should be set to the default status.
3f47298 to
ea01d80
Compare
ea01d80 to
01438c7
Compare
jcoux
reviewed
Feb 25, 2026
| group_product_state_manager = self.env.ref( | ||
| "product_state.group_product_state_manager" | ||
| ) | ||
| self.env.user.write({"group_ids": [(4, group_product_state_manager.id)]}) |
| st_env = self.env["product.state"] | ||
| demo_user = self.demo_user | ||
| demo_user.group_ids = [ | ||
| (4, self.env.ref("product_state.group_product_state_manager").id) |
Comment on lines
+3
to
+31
| <!-- prettier-ignore-start --> | ||
| <function name="write" model="ir.model.data"> | ||
| <function name="search" model="ir.model.data"> | ||
| <value eval="[('module', '=', 'product_state'), ('model', '=', 'product.state')]"/> | ||
| </function> | ||
| <value eval="{'noupdate': False}" /> | ||
| </function> | ||
| <!-- prettier-ignore-end --> | ||
|
|
||
| <record id="product_state.product_state_draft" model="product.state"> | ||
| <field name="active" eval="False" /> | ||
| </record> | ||
|
|
||
| <record id="product_state.product_state_end" model="product.state"> | ||
| <field name="active" eval="False" /> | ||
| </record> | ||
|
|
||
| <record id="product_state.product_state_obsolete" model="product.state"> | ||
| <field name="active" eval="False" /> | ||
| </record> | ||
|
|
||
| <!-- prettier-ignore-start --> | ||
| <function name="write" model="ir.model.data"> | ||
| <function name="search" model="ir.model.data"> | ||
| <value eval="[('module', '=', 'product_state'), ('model', '=', 'product.state')]"/> | ||
| </function> | ||
| <value eval="{'noupdate': True}" /> | ||
| </function> | ||
| <!-- prettier-ignore-end --> |
There was a problem hiding this comment.
I think you can use function to directly write active field on the 3 records, without changing noupdate flag.
Something like:
Suggested change
| <!-- prettier-ignore-start --> | |
| <function name="write" model="ir.model.data"> | |
| <function name="search" model="ir.model.data"> | |
| <value eval="[('module', '=', 'product_state'), ('model', '=', 'product.state')]"/> | |
| </function> | |
| <value eval="{'noupdate': False}" /> | |
| </function> | |
| <!-- prettier-ignore-end --> | |
| <record id="product_state.product_state_draft" model="product.state"> | |
| <field name="active" eval="False" /> | |
| </record> | |
| <record id="product_state.product_state_end" model="product.state"> | |
| <field name="active" eval="False" /> | |
| </record> | |
| <record id="product_state.product_state_obsolete" model="product.state"> | |
| <field name="active" eval="False" /> | |
| </record> | |
| <!-- prettier-ignore-start --> | |
| <function name="write" model="ir.model.data"> | |
| <function name="search" model="ir.model.data"> | |
| <value eval="[('module', '=', 'product_state'), ('model', '=', 'product.state')]"/> | |
| </function> | |
| <value eval="{'noupdate': True}" /> | |
| </function> | |
| <!-- prettier-ignore-end --> | |
| <function model="product.state" name="write"> | |
| <value eval="[ref('product_state.product_state_draft'), ref('product_state.product_state_end'), ref('product_state.product_state_obsolete')]"/> | |
| <value eval="{'active': False}"/> | |
| </function> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on #2217, will be rebased once the other PR is merged